package com.ruoyi.training.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 特设证书管理对象 special_certificate
 * 
 * @author hcc
 * @date 2025-11-06
 */
public class SpecialCertificate extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 特设证书id */
    private String specialCertificateId;

    /** 证书类型 */
    @Excel(name = "证书类型")
    private String certificateType;

    /** 证书模板id */
    @Excel(name = "证书模板id")
    private String templateId;

    /** 学员id */
    @Excel(name = "学员id")
    private String studentId;

    /** 项目id */
    @Excel(name = "项目id")
    private String projectId;

    /** 报名id */
    @Excel(name = "报名id")
    private String registrationId;

    /** 培训班级id */
    private String trainingClassId;

    /** 作业种类 */
    @Excel(name = "作业种类")
    private String workCategory;

    /** 作业项目 */
    @Excel(name = "作业项目")
    private String workProject;

    /** 证书编号 */
    @Excel(name = "证书编号")
    private String certificateNo;

    /** 证书有效期起 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "证书有效期起", width = 30, dateFormat = "yyyy-MM-dd")
    private Date validityStartTime;

    /** 证书有效期止 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "证书有效期止", width = 30, dateFormat = "yyyy-MM-dd")
    private Date validityEndTime;

    /** 发证单位 */
    @Excel(name = "发证单位")
    private String issuingAuthority;

    /** 复审状态 */
    @Excel(name = "复审状态")
    private String reviewStatus;

    /** 原发证机关 */
    @Excel(name = "原发证机关")
    private String originalAuthority;

    /** 原发证机关地址 */
    private String originalAuthorityAddress;

    /** 原证书编号 */
    @Excel(name = "原证书编号")
    private String originalCertificateNo;

    /** 首次领证日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "首次领证日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date firstIssueDate;

    /** 到期日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "到期日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expireDate;

    /** 费用 */
    @Excel(name = "费用")
    private String specialCertificateFee;

    /** 缴费id */
    @Excel(name = "缴费id")
    private String paymentId;

    /** 发票id */
    @Excel(name = "发票id")
    private String invoiceId;

    /** 是否上传考试系统(0:否,1:是) */
    @Excel(name = "是否上传考试系统(0:否,1:是)")
    private String uploadExamSystem;

    /** 临近过期期限(天) */
    @Excel(name = "临近过期期限(天)")
    private String expireReminderDays;

    /** 备注 */
    @Excel(name = "备注")
    private String specialCertificateRemark;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdTime;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedTime;

    /** $column.columnComment */
    private String exampleOne;

    /** $column.columnComment */
    private String exampleTwo;

    /** $column.columnComment */
    private String exampleThree;

    public String getOriginalAuthorityAddress() {
        return originalAuthorityAddress;
    }

    public void setOriginalAuthorityAddress(String originalAuthorityAddress) {
        this.originalAuthorityAddress = originalAuthorityAddress;
    }

    public String getTrainingClassId() {
        return trainingClassId;
    }

    public void setTrainingClassId(String trainingClassId) {
        this.trainingClassId = trainingClassId;
    }

    public void setSpecialCertificateId(String specialCertificateId)
    {
        this.specialCertificateId = specialCertificateId;
    }

    public String getSpecialCertificateId() 
    {
        return specialCertificateId;
    }

    public void setCertificateType(String certificateType) 
    {
        this.certificateType = certificateType;
    }

    public String getCertificateType() 
    {
        return certificateType;
    }

    public void setTemplateId(String templateId) 
    {
        this.templateId = templateId;
    }

    public String getTemplateId() 
    {
        return templateId;
    }

    public void setStudentId(String studentId) 
    {
        this.studentId = studentId;
    }

    public String getStudentId() 
    {
        return studentId;
    }

    public void setProjectId(String projectId) 
    {
        this.projectId = projectId;
    }

    public String getProjectId() 
    {
        return projectId;
    }

    public void setRegistrationId(String registrationId) 
    {
        this.registrationId = registrationId;
    }

    public String getRegistrationId() 
    {
        return registrationId;
    }

    public void setWorkCategory(String workCategory) 
    {
        this.workCategory = workCategory;
    }

    public String getWorkCategory() 
    {
        return workCategory;
    }

    public void setWorkProject(String workProject) 
    {
        this.workProject = workProject;
    }

    public String getWorkProject() 
    {
        return workProject;
    }

    public void setCertificateNo(String certificateNo) 
    {
        this.certificateNo = certificateNo;
    }

    public String getCertificateNo() 
    {
        return certificateNo;
    }

    public void setValidityStartTime(Date validityStartTime) 
    {
        this.validityStartTime = validityStartTime;
    }

    public Date getValidityStartTime() 
    {
        return validityStartTime;
    }

    public void setValidityEndTime(Date validityEndTime) 
    {
        this.validityEndTime = validityEndTime;
    }

    public Date getValidityEndTime() 
    {
        return validityEndTime;
    }

    public void setIssuingAuthority(String issuingAuthority) 
    {
        this.issuingAuthority = issuingAuthority;
    }

    public String getIssuingAuthority() 
    {
        return issuingAuthority;
    }

    public void setReviewStatus(String reviewStatus) 
    {
        this.reviewStatus = reviewStatus;
    }

    public String getReviewStatus() 
    {
        return reviewStatus;
    }

    public void setOriginalAuthority(String originalAuthority) 
    {
        this.originalAuthority = originalAuthority;
    }

    public String getOriginalAuthority() 
    {
        return originalAuthority;
    }

    public void setOriginalCertificateNo(String originalCertificateNo) 
    {
        this.originalCertificateNo = originalCertificateNo;
    }

    public String getOriginalCertificateNo() 
    {
        return originalCertificateNo;
    }

    public void setFirstIssueDate(Date firstIssueDate) 
    {
        this.firstIssueDate = firstIssueDate;
    }

    public Date getFirstIssueDate() 
    {
        return firstIssueDate;
    }

    public void setExpireDate(Date expireDate) 
    {
        this.expireDate = expireDate;
    }

    public Date getExpireDate() 
    {
        return expireDate;
    }

    public void setSpecialCertificateFee(String specialCertificateFee) 
    {
        this.specialCertificateFee = specialCertificateFee;
    }

    public String getSpecialCertificateFee() 
    {
        return specialCertificateFee;
    }

    public void setPaymentId(String paymentId) 
    {
        this.paymentId = paymentId;
    }

    public String getPaymentId() 
    {
        return paymentId;
    }

    public void setInvoiceId(String invoiceId) 
    {
        this.invoiceId = invoiceId;
    }

    public String getInvoiceId() 
    {
        return invoiceId;
    }

    public void setUploadExamSystem(String uploadExamSystem) 
    {
        this.uploadExamSystem = uploadExamSystem;
    }

    public String getUploadExamSystem() 
    {
        return uploadExamSystem;
    }

    public void setExpireReminderDays(String expireReminderDays) 
    {
        this.expireReminderDays = expireReminderDays;
    }

    public String getExpireReminderDays() 
    {
        return expireReminderDays;
    }

    public void setSpecialCertificateRemark(String specialCertificateRemark) 
    {
        this.specialCertificateRemark = specialCertificateRemark;
    }

    public String getSpecialCertificateRemark() 
    {
        return specialCertificateRemark;
    }

    public void setCreatedTime(Date createdTime) 
    {
        this.createdTime = createdTime;
    }

    public Date getCreatedTime() 
    {
        return createdTime;
    }

    public void setUpdatedTime(Date updatedTime) 
    {
        this.updatedTime = updatedTime;
    }

    public Date getUpdatedTime() 
    {
        return updatedTime;
    }

    public void setExampleOne(String exampleOne) 
    {
        this.exampleOne = exampleOne;
    }

    public String getExampleOne() 
    {
        return exampleOne;
    }

    public void setExampleTwo(String exampleTwo) 
    {
        this.exampleTwo = exampleTwo;
    }

    public String getExampleTwo() 
    {
        return exampleTwo;
    }

    public void setExampleThree(String exampleThree) 
    {
        this.exampleThree = exampleThree;
    }

    public String getExampleThree() 
    {
        return exampleThree;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("specialCertificateId", getSpecialCertificateId())
            .append("certificateType", getCertificateType())
            .append("templateId", getTemplateId())
            .append("studentId", getStudentId())
            .append("projectId", getProjectId())
            .append("registrationId", getRegistrationId())
            .append("trainingClassId", getTrainingClassId())
            .append("workCategory", getWorkCategory())
            .append("workProject", getWorkProject())
            .append("certificateNo", getCertificateNo())
            .append("validityStartTime", getValidityStartTime())
            .append("validityEndTime", getValidityEndTime())
            .append("issuingAuthority", getIssuingAuthority())
            .append("reviewStatus", getReviewStatus())
            .append("originalAuthority", getOriginalAuthority())
            .append("originalAuthorityAddress", getOriginalAuthorityAddress())
            .append("originalCertificateNo", getOriginalCertificateNo())
            .append("firstIssueDate", getFirstIssueDate())
            .append("expireDate", getExpireDate())
            .append("specialCertificateFee", getSpecialCertificateFee())
            .append("paymentId", getPaymentId())
            .append("invoiceId", getInvoiceId())
            .append("uploadExamSystem", getUploadExamSystem())
            .append("expireReminderDays", getExpireReminderDays())
            .append("specialCertificateRemark", getSpecialCertificateRemark())
            .append("createdTime", getCreatedTime())
            .append("updatedTime", getUpdatedTime())
            .append("exampleOne", getExampleOne())
            .append("exampleTwo", getExampleTwo())
            .append("exampleThree", getExampleThree())
            .toString();
    }
}
